package org;

import java.util.Random;

public class TimeSel {
    /**
     * 生成线程休眠的时间间断
     * 生成策略
     * 1、2个区间 （秒级） （分钟级）
     * 2、秒级存在（1-90秒）
     * 3、分钟级存在（1-30分钟）
     * 4、秒级与分钟级的选取概率比为5：1
     * @return
     */
    private static int times = 0;
    private static int timesFac = 39;//能够被39整除的数时，一次性投timeCycle票以内
    private static int timesCycle = -1;//特殊性投票
    public static int build(){
        if(times%timesFac==0){
            //特殊性投票
            if(timesCycle==-1) {
                timesCycle = new Random().nextInt(5);
            }
            timesCycle--;//此处都是不需等待就投票
            if(timesCycle==0){
                times++;
                timesCycle=-1;
                return 0;
            }
        }

        times++;
        Random random = new Random();
        int factor = random.nextInt(6);
        if(factor==1){
            //分钟级生成策略
            int minute = random.nextInt(31);
            if(minute == 0){
                minute++;
            }
            return minute*60*1000;
        }else{
            //秒级生成策略
            int seconds = random.nextInt(90);
            if(seconds==0){
                seconds++;
            }
            return seconds;
        }
    }

}
